# 导入异步IO模块
import asyncio

# 导入日志模块
import logging


# 定义异步调试函数
async def async_debugging():
    """异步调试演示"""

    # 配置日志调试参数
    logging.basicConfig(
        level=logging.DEBUG,
        format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
    )

    # 定义一个异步任务，接收任务名和延迟参数
    async def debug_task(name, delay):
        # 日志记录任务开始
        logging.debug(f"任务 {name} 开始")
        # 异步休眠指定秒数
        await asyncio.sleep(delay)
        # 日志记录任务结束
        logging.debug(f"任务 {name} 结束")
        # 返回任务结果字符串
        return f"{name}_result"

    # 创建第一个异步任务，并设置任务名称
    task1 = asyncio.create_task(debug_task("调试任务1", 1), name="debug_task_1")
    # 创建第二个异步任务，并设置任务名称
    task2 = asyncio.create_task(debug_task("调试任务2", 0.5), name="debug_task_2")

    # 打印当前所有运行的任务信息
    print("当前运行的任务:")
    # 遍历所有当前的异步任务
    for task in asyncio.all_tasks():
        # 打印每个任务的名称和协程对象
        print(f"  - {task.get_name()}: {task.get_coro()}")  # 修正：get_name()

    # 等待所有任务完成，并收集返回结果
    results = await asyncio.gather(task1, task2)
    # 打印任务结果
    print(f"任务结果: {results}")


# 导入os模块，用于设置环境变量
import os

# 启用异步调试模式
os.environ["PYTHONASYNCIODEBUG"] = "1"
# 运行异步调试函数
asyncio.run(async_debugging())
